package exception;

import java.io.FileOutputStream;
import java.io.IOException;

/**
 * finally常见面试题
 *
 * 请说明 final finally finalize是什么
 * finalize是Object中定义的一个方法 这意味着java中所有的类都有该方法 该方法会通过GC调用
 * 何时调用：当GC扫描时发现一个对象不再被引用则会将其释放 在释放前会调用finalize 一旦该方法执行完毕则对象被释放
 */
public class FinallyDemo3 {
    public static void main(String[] args) {
        System.out.println(
                dosome("0")+"\t" + dosome(null)+"\t"+dosome("")
        );

    }
    public static int dosome(String str){
        try {
            return str.charAt(0)-'0';
        } catch (NullPointerException e) {
            return 1;
        } catch (Exception e){
            return 2;
        }finally {
            return 3;
        }
    }
}
